import { _wx_config } from "../api";

export const WECHAT = {
    config: async (url) => {
      // return
      const { data: {timestamp, nonceStr, signature, appId} } = await _wx_config({url}) || {};
      return
      await wx.config({
        debug: false,
        appId: appId, // 必填，公众号的唯一标识
        timestamp:timestamp, // 必填，生成签名的时间戳
        nonceStr, // 必填，生成签名的随机串
        signature,// 必填，签名
        jsApiList: [`getLocation`, `updateAppMessageShareData`, `updateTimelineShareData`] // 必填，需要使用的JS接口列表
      });
  
      wx.ready(function () {
        // 分享给朋友
        wx.updateAppMessageShareData({
          title: '智趣U星大富翁·云南篇',
          desc: '参与游戏掷骰子，随机出现不同福利礼包',
          link: decodeURIComponent(url),
          imgUrl: "https://car.varwey.com/chess1026/images/share/app.jpg",
          success: function () {
            console.log(`success`);
            // 用户确认分享后执行的回调函数
          },
          cancel: function () {
            console.log(`cancel`);
            // 用户取消分享后执行的回调函数
          }
        });
  
        wx.updateTimelineShareData({
          title: '智趣U星大富翁·云南篇', // 分享标题
          link: decodeURIComponent(url),
          imgUrl: "https://car.varwey.com/chess1026/images/share/app.jpg",
          success: function () {
            console.log(`success`);
            // 用户确认分享后执行的回调函数
          },
          cancel: function () {
            console.log(`cancel`);
            // 用户取消分享后执行的回调函数
          }
        });
      });
      wx.error(function (err) {
        console.log(`err`, err);
        history.pushState(null, '', url)
        // config信息验证失败会执行error函数，如签名过期导致验证失败，具体错误信息可以打开config的debug模式查看，也可以在返回的res参数中查看，对于SPA可以在这里更新签名。
      });
      history.pushState(null, '', url)
    },
    getLocation: async () => {
      console.log(222)
      return new Promise((resolve, reject) => {
  
        window.wx?.getLocation({
          type: 'wgs84',
          success: res => {
            console.log(`getLocation success`, res)
            alert(JSON.stringify(res))
            resolve(res)
          },
          fail: err => {
            console.log(`fail`, err)
            reject(err)
            alert(JSON.stringify(err))
          },
          complete: () => {
            console.log(`getLocation complete`)
            resolve(null)
          }
        })
      })
    }
  }